草庐IT

c++ - 在 C++11 中实现 boost::optional

全部标签

c++ - Boost::Log - 使用严重性和自定义过滤器属性记录?使用哪个宏?

我想使用boost::log让我的负载测试应用程序记录到不同的文件和控制台。每个工作线程(代表连接到要测试的服务器的一个用户)应记录线程日志并将失败的调用记录到失败的调用日志中。我尝试通过使用过滤器来实现这一点。目标是:=>Alllogswithseverity=lowerthan"INFO"willbediscarded=>Alllogrecordshavingtheattribute"global"goto./logs/loadtest.logANDtoconsole=>Alllogrecordshavingtheattribute"thread"goto./logs/thread

c++ - 将右值引用传递给 boost::in_place 函数

我不熟悉C++中的右值引用,想学习如何在日常生活中使用它们。我有2个关于流行用例的相关问题:将右值引用与boost::in_place和boost::bind结合使用。在boost::in_place中使用右值引用考虑一个类,构造函数将右值引用作为参数:structA:boost::noncopyable{A(int&&){}};现在让我们尝试为这个类创建boost可选变量:voidfoo(int&&value){boost::optionalopt;//somecodehereopt=boost::in_place(std::forward(value));//Error!}在这样的

c++ - 在 C++11 中抛出异常时是否使用 move 语义?

http://www.drdobbs.com/cpp/practical-c-error-handling-in-hybrid-env/197003350?pgno=4在这篇文章中,HerbSutter解释说抛出异常需要异常的拷贝,因为它是作为临时创建的,因此使用std::auto_ptr来绕过复制开销。鉴于move语义在C++11中可用,这仍然是必要的吗? 最佳答案 我刚查过,标准允许省略将throw表达式的操作数指定的对象复制或move到异常对象中如果您不以其他方式改变程序的含义(即如果您重新抛出并且随后的捕获会突然看到一个由前

c++ - 从 Boost::Tokenizer 中删除重复项?

我试图拆分一个逗号分隔的字符串,然后对每个标记执行一些操作,但忽略重复项,所以……。按照以下几行:intmain(int,char**){stringtext="token,teststring";char_separatorsep(",");tokenizer>tokens(text,sep);//removeduplicatesfromtokens?BOOST_FOREACH(conststring&t,tokens){cout有没有办法在boost::tokenizer上做到这一点?我知道我可以使用boost::split和std::unique解决这个问题,但想知道是否也有一种

c++ - 使用 C++11 迭代语法时从 STL 列表中删除

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Erasinganelementfromacontainerwhileinsidearange-basedforloopSimilartothis,您可以在使用新的for(autoitem:list)语法从STL列表中删除它吗?这是一个完整的例子(崩溃了!)#includeusingnamespacestd;intmain(){listli;li.push_back(4);li.push_back(5);li.push_back(6);for(autonum:li){if(num==5)li.remove(n

c++ - boost::asio QNX 链接器错误

我不熟悉在QNX平台中使用boost库。我在链接asio库时遇到问题。它在boost::asio::detail::socket_ops中抛出undefinedreference链接器错误等级。消息是:在函数中boost::asio::detail::socket_ops::call_bind未定义的绑定(bind)引用..&listen的类似错误,recvmsg,accept,setsockopt..当我仅将asio库作为头库包含时(我没有单独编译它),我得到了这些错误。然后我尝试通过定义BOOST_ASIO_SEPARATE_COMPILATION来显式编译库并包括一次。它向soc

c++ - C++11 theads 的最基本并行化失败

我尝试通过g++4.7使用C++11theading库。首先我有一个问题:是否预计下一个版本不需要手动链接pthread库?所以我的程序是:#include#include#includevoidf(inti){std::coutt;for(inti=0;i我编译:g++-4.7-Wall-Wextra-Winline-std=c++0x-pthread-O3helloworld.cpp-ohelloworld它返回:Helloworldfrom:Helloworldfrom:Helloworldfrom:322purevirtualmethodcalledterminatecalle

c++ - 我可以在不让我的 IntelliSense 泛滥的情况下使用 Boost 库吗?

我为dynamic_bitset添加了Boost库,现在我的IntelliSense充满了大量的Boost内容。有什么办法可以阻止吗?我正在使用VS2012 最佳答案 Intellisense应该只列出当前命名空间中的函数。您很可能正在使用using指令。 关于c++-我可以在不让我的IntelliSense泛滥的情况下使用Boost库吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

c++ - boost 条件不适用于具有两个生产者和一个消费者的线程安全队列

我有两个线程添加到“线程安全”队列中。但是,当第二个线程尝试“推送”内容时。不会通知消费者内容可用。队列继续增长,但notify_one()从不通知消费方法中的条件。这是为什么?#ifndefCONCURRENT_QUEUE_H#defineCONCURRENT_QUEUE_H#include#includetemplateclassconcurrent_queue{private:std::queuethe_queue;mutableboost::mutexthe_mutex;boost::condition_variablethe_condition_variable;public

c++ - boost:python 传递一个指向指针的指针作为参数

首先,我不是Python程序员,所以请原谅我的愚蠢错误。在C++中,我有一个来自MyClass的公共(public)方法,它动态地创建一个图像并返回它的大小。intMyClass::getImg(uchar*uimg[]){intsize=variable_size;*_uimg=newuchar[size];memcpy(*_uimg,imageOrigin->data(),size);uimg=_uimg;returnsize;}还有boost:python:BOOST_PYTHON_MODULE(mymodule){class_("MyClass").def("getImg",&